<?php 
class IngresoService
{
	static function setIngreso(Ingreso $model,$data)
	{
		$model->ingreso_periodoingreso_id = $data['Ingreso']['ingreso_periodoingreso_id'];
		$model->ingreso_programaacademico_id = $data['Ingreso']['ingreso_programaacademico_id'];
		$model->ingreso_entrevista = $data['Ingreso']['ingreso_entrevista'];
		$model->ingreso_matricula = $data['Ingreso']['ingreso_matricula'];
		if($model->isNewRecord)
		{
			$model->ingreso_estado_id = AplicacionVariables::ESTADO_ACTIVO_ID;
		}
		return $model;
	}
	
	static function setIngresoTurnos($data)
	{
		$result = array();
		if(isset($data['IngresoTurno']['intu_cupoingreso']) && is_array($data['IngresoTurno']['intu_cupoingreso']))
		{
			foreach ($data['IngresoTurno']['intu_cupoingreso'] as $key=>$value)
			{
				if(intval($value) != 0)
				{
					$ingresoTurno = new IngresoTurno();
					$ingresoTurno->intu_turno_id = $key;
					$ingresoTurno->intu_cupoingreso = $value;
					$ingresoTurno->intu_periodoingreso_id = $data['Ingreso']['ingreso_periodoingreso_id'];
					$ingresoTurno->intu_programaacademico_id = $data['Ingreso']['ingreso_programaacademico_id'];
					$result[] = $ingresoTurno;
				}
			}
		}
		
		return (count($result) > 0)? $result:null;
	}
	
	static function setIngresoDocumentacion($data)
	{
		$result = array();
		if(isset($data['IngresoDocumentacionIngreso']) && is_array($data['IngresoDocumentacionIngreso']))
		{
			
			foreach ($data['IngresoDocumentacionIngreso'] as $idDocumentacion=>$requiredFields)
			{
				$ingresoDocumentacionIngreso = new IngresoDocumentacionIngreso();
				$ingresoDocumentacionIngreso->indi_documentacioningreso_id = $idDocumentacion;
				$ingresoDocumentacionIngreso->indi_periodoingreso_id = $data['Ingreso']['ingreso_periodoingreso_id'];
				$ingresoDocumentacionIngreso->indi_programaacademico_id = $data['Ingreso']['ingreso_programaacademico_id'];
				$ingresoDocumentacionIngreso->indi_requeridacursar = (isset($requiredFields['indi_requeridacursar']))?1:0;
				$ingresoDocumentacionIngreso->indi_requeridacursoingreso = (isset($requiredFields['indi_requeridacursoingreso']))?1:0;
				$ingresoDocumentacionIngreso->indi_opcional = (isset($requiredFields['indi_opcional']))?1:0;
				$result[] = $ingresoDocumentacionIngreso;
			}
		}
		return (count($result) > 0)? $result:null;
	}
	
	
	static function setIngresoCursos(Ingreso $model,$data)
	{
		
		$result = array();
		if(isset($data['IngresoCursos']) && is_array($data['IngresoCursos']))
		{
			$tmpCursos = array();
			for ($i=0;$i<count($data['IngresoCursos']['ingresocurso_inicio']);$i++)
			{
				$ingresoCurso = new IngresoCurso('CreacionTemporal');
				$ingresoCurso->ingresocurso_periodoingreso_id = $model->ingreso_periodoingreso_id;
				$ingresoCurso->ingresocurso_programaacademico_id = $model->ingreso_programaacademico_id;
				
				$ingresoCurso->ingresocurso_inicio = $data['IngresoCursos']['ingresocurso_inicio'][$i];
				$ingresoCurso->ingresocurso_fin = $data['IngresoCursos']['ingresocurso_fin'][$i];
				$ingresoCurso->ingresocurso_porcentajeaprobacion = $data['IngresoCursos']['ingresocurso_porcentajeaprobacion'][$i];
				$ingresoCurso->ingresocurso_descripcion = $data['IngresoCursos']['ingresocurso_descripcion'][$i];
				
				$ingresoCurso->ingresocurso_creado_usuario_id = $data['IngresoCursos']['ingresocurso_creado_usuario_id'][$i];
				$ingresoCurso->ingresocurso_creado = AplicacionVariables::ESTADO_ACTIVO_ID;
				$ingresoCurso->ingresocurso_estado_id = AplicacionVariables::ESTADO_ACTIVO_ID;
				//var_dump($_POST);
				//var_dump($ingresoCurso->ingresocurso_porcentajeaprobacion);exit;
				
				//$ingresoCurso->setScenario('ingresoCurso');
				if(!$ingresoCurso->validate())
				{
					foreach ($ingresoCurso->getErrors() as $key=>$value)
					{
						$model->addError('ingresocurso_inicio', t('En el curso en la linea '. ($i + 1) . ' ' . $value[0] ,'carrera_etiqueta'));
					}
				}
				
				
				$tmpCursos[] = $ingresoCurso;
			}
			if(count($tmpCursos) > 0)
			{
				$model->cursos = $tmpCursos;
			}
			return $model;
		}
		$model->addError('ingresocurso_inicio', t('Debe Ingresar al menos un curso','carrera_etiqueta'));
		return $model;
	
	}
	
	static function getIngresoProgramaTurnos(Ingreso $ingreso)
	{
		//fixme mejorar la consulta
		$criteria = new CDbCriteria();
		$criteria->select = 'intu_turno_id, turno_nombre as intu_turno_nombre';
		$criteria->join = 'join tbl_turno on intu_turno_id = turno_id';
		$criteria->condition = 'intu_periodoingreso_id = :periodoID and intu_programaacademico_id = :programaAcademicoID';
		$criteria->params = array(':periodoID'=>$ingreso->ingreso_periodoingreso_id, ':programaAcademicoID'=>$ingreso->ingreso_programaacademico_id);
		
		return IngresoTurno::model()->findAll($criteria);
	}
	
}

?>